The present invention relates generally to global navigation satellite systems, and more particularly to a base data extrapolator to operate with a navigation receiver.
Global navigation satellite systems, such as the global positioning system (GPS), may determine locations with high accuracy. A navigation receiver receives and processes radio signals transmitted by satellites located within a line-of-sight distance of the receiver. The satellite signals comprise carrier signals modulated by pseudo-random binary codes. The receiver measures the time delays of the received signals relative to a local reference clock or oscillator. Code measurements enable the receiver to determine the pseudo-ranges between the receiver and the satellites. The pseudo-ranges differ from the actual ranges (distances) between the receiver and the satellites due to various error sources and due to variations in the time scales of the satellites and the receiver. If signals are received from a sufficiently large number of satellites, then the measured pseudo-ranges can be processed to determine the code coordinates and coordinate time scales at the receiver. This operational mode is referred to as a stand-alone mode, since the measurements are determined by a single satellite receiver. A stand-alone system typically provides meter-level accuracy.
To improve the accuracy, precision, stability, and reliability of measurements, differential navigation (DN) systems have been developed. A schematic of a DN system is shown in FIG. 1. Constellation 110 includes multiple navigation satellites; shown are four representative satellites, satellite 112-satellite 118. In a DN system, the position of a user is determined relative to a base station (also referred to as a base), designated base 130 in FIG. 1. Base 130 is generally fixed, or at least stationary, during measurements. Base 130 contains a navigation receiver that receives satellite signals 101 from constellation 110. The coordinates of base 130 are precisely known (by satellite positioning systems, other measurement schemes, or a combination of satellite positioning systems and other measurement schemes).
The user may also be fixed or stationary. In general, however, the user may be mobile, and is often referred to as a rover, designated rover 140 in FIG. 1. Rover 140 contains a navigation receiver that receives satellite signals 103 from constellation 110. Signal measurements processed at base 130 are transmitted to rover 140 via a communications link. The communications link, for example, may be provided over a cable or optical fiber. The communications link may also be a wireless link, designated wireless link 105 in FIG. 1. Rover 140 processes the measurements received from base 130, along with measurements taken with its own navigation receiver, to improve the accuracy of determining its position. Accuracy is improved in the differential navigation mode because errors incurred by the receiver at rover 140 and by the receiver at base 130 are highly correlated. Since the coordinates of base 130 are accurately known, measurements from base 130 may be used to compensate for the errors at rover 140. A differential global positioning system (DGPS) computes locations based on pseudo-ranges only.
The location determination accuracy of a differential navigation system may be further improved by supplementing the code pseudo-range measurements with measurements of the phases of the satellite carrier signals. If the carrier phases of the signals transmitted by the same satellite are measured by both the receiver in base 130 and the receiver in rover 140, processing the two sets of carrier phase measurements can yield a location determination accuracy to within several percent of the carrier's wavelength. A differential navigation system that computes locations based on real-time carrier signals is often referred to as a real-time kinematic (RTK) system.
To process measurements from base 130 and rover 140 in real time, two problems need to be resolved. The first problem is to reference the measurements at base 130 and the measurements at rover 140 to a common reference time base to properly compensate for highly-correlated errors that vary in time. Two approaches for solving this problem have been developed. In the first approach (referred to as the matched observation processing mode and also referred to as the delay mode), processing measurements at rover 140 are delayed until corresponding measurements from base 130 arrive. This approach is not well suited for fast mobile rovers, whose positions need to be determined at user-specified times.
In the second approach (referred to as the low-latency position processing mode and also referred to as the extrapolation mode), measurements from base 130 are extrapolated in advance to the instant when corresponding measurements from rover 140 are received. This approach yields more accurate results when determining the coordinates of rover 140 as a function of the time measured at rover 140. This approach is suitable for applications in which the time intervals between measurement updates of the coordinates of rover 140 are less than the time intervals at which measurements from base 130 are received by rover 140.
A second problem arises if the communications link between rover 140 and base 130 operates under deleterious conditions (such as low signal or high interference in wireless link 105). In some instances, transmission errors in the data transmitted from base 130 may not be properly corrected by the decoder in rover 140. In other instances, wireless link 105 may go down. Transmission of data from base 130 to rover 140 may be disrupted for extended periods of time; for example, tens of seconds or more. In these instances, prediction of base data by extrapolation can significantly increase the reliability of measuring the coordinates of rover 140.
Timing relationships are illustrated in FIG. 2. The horizontal axes represent time. Base time 220 represents time relative to the base clock (at base 130). Rover time 260 represents the time relative to the rover clock (at rover 140). In the example shown, base time 220 and rover time 260 are synchronized to a common system reference clock with high accuracy. The base epochs (time instants at which measurements are made at the base) are denoted ti, where i is an integer ≧1. Shown are six representative base epochs, t1 221-t6 226. The duration of the base epoch (that is, the time interval between two neighboring base epochs) is Tepbase 201. To simplify the discussion, in the example shown, the rover epochs Teprov 202 are the same as the base epochs (in general they may be different). The full phases φi,j (base) and pseudo-ranges Ri,j (base) are measured at base 130 at base epochs ti. Here j is the reference index of a specific satellite. The value j is an integer ranging from 1 to N, where N is the total number of satellites from which the navigation receiver receives signals.
The values of [φi,j (base), Ri,j (base), ti] are transmitted as base data to rover 140 across a communications link (such as wireless link 105 in FIG. 1) via communications devices, such as modems, installed at both base 130 and rover 140. Since a finite time is required for transmission of data between base 130 and rover 140, there is a delay between the time that base data is collected at base 130 and the time that the base data from base 130 is received in rover 140 (data processing time is considered to be negligible relative to the transmission delay). To simplify the discussion, in the example shown in FIG. 2, the delay, denoted as τd 203, is constant. In general, the delay may vary.
In the first approach discussed above, the full phases φi,j (rover) and pseudo-ranges Ri,j (rover) are measured at rover 140 at times ti. The values of [φi,j (rover), Ri,j (rover), ti] are stored as rover data in buffer memory at rover 140. The base data [φi,j (base), Ri,j (base), ti] from base 130 arrives at rover 140 with a delay τd. Again, assuming that data processing time is negligible relative to delay μd, rover 140 then post-processes, at data processing time ti′=ti+τd, the combined base data taken at measurement time ti and rover data taken at measurement time ti. For example, measurements taken at t1 221-t6 226 are processed at t1 261-t6 266, respectively.
In the second approach discussed above, the values of [φi,j (rover), Ri,j (rover), ti] taken at an instant ti=tm are immediately co-processed with values of [φi,jext (base), Ri,jext (base), tm] extrapolated from values of [φi,j (base), Ri,j (base), ti] taken at instant ti<tm, which have previously arrived at rover 140. In this case, the information to the user (at rover 140) is outputted without delay. For example, at t4 location coordinates are processed from values of [φ4,j (rover), R4,j (rover), t4] and from values of [φ4,jext (base), R4,jext (base), t4] extrapolated from values of [φ3,j (base), R3,j (base), t3] taken at instant t3, which arrived at rover 140 at instant t3′<t4. In this case, the base data is predicted (extrapolated) over a single epoch.
This approach can operate even if the information from base 130 is absent over one or more epochs. For example, assume at t5 that values of [φ3,j (base), R3,j (base), t3] have arrived at rover 140 at instant t3′<t5; however, values of [φ4,j (base), R4,j (base), t4] that should have arrived at rover 140 at instant t4′<t5 are missing (assume wireless link 105 in FIG. 1 was disrupted). In this case, at t5, location coordinates are processed from values of [φ5,j (rover), R5,j (rover), t5] and from values of [φ5,jext (base), R5,jext (base), t5] extrapolated from values of [φ3,j (base), R3,j (base), t3]. In this case, the base data is predicted over two epochs. Since prediction errors increase as the extrapolation interval (also referred to as the prediction interval) increases, however, the maximum extrapolation interval is set to a user-defined value; for example, 30 s. The extrapolation interval is the difference between the current measurement time at rover 140 and the time at which the most recent available base data was taken.
Existing systems use different extrapolation techniques of varying complexity. Simple linear prediction, for example, can be efficient for short prediction intervals. Longer prediction intervals require statistical analysis of predicted processes determined by the instability of the reference oscillator (frequency reference) at base 140, the instability of the reference oscillators at the satellites, and variations in radio wave propagation. One existing extrapolator is based on a Kalman filter; an example is described in J. Neumann et al., “Test Results from a New 2 cm Real Time Kinematics GPS Positioning System,” The Proceedings of the 9-th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS-96), 1996, pp. 873-882.
Another technique is described in U.S. Pat. No. 6,674,399. In this case, extrapolation is performed with a polynomial, the coefficients of which are determined and then corrected over the previous time interval (prior to extrapolation). A set of information parameters for each satellite channel is generated at the rover's modem output from the base data and recorded in the extrapolator register. Measured parameters of the communication link between the base and the rover, such as signal-to-noise ratio, and messages concerning errors that cannot be corrected are recorded in the register as well.
The recorded set of data is used to calculate the parameters of the extrapolation function in the form of a polynomial. In particular, a square polynomial describing the extrapolation function with three coefficients in the form of At2+Bt+C is applied, where t is the time and A, B, and C are coefficients of the extrapolation function. The coefficients of the extrapolation function are computed by least mean squares over the previous time interval. When there is an interruption in communications, base data is restored using the stored polynomial coefficients.
The accuracy of extrapolation depends not only on the time but also on the behavior of the extrapolated process. The slower this process is, the more accurate the extrapolation will be. What is needed is an extrapolator that is capable of predicting base data with high accuracy over long extrapolation intervals. In addition, an extrapolator that minimizes computational resources is advantageous.